#pragma once
#include "dialog.h"
#include "resource.h"
#include "structs.h"

class CFindStringDlg : public CDialog
{
public:
	enum {IDD=IDD_FINDDIALOG};

	CFindStringDlg(HWND hWnd);

	virtual void OnInitDialog();
	virtual UINT OnOK();

	void OnClickBytecode();
	void OnClickMatchCase();
};

class CFindHexDlg : public CDialog
{
public:
	enum {IDD=IDD_FINDHEX};

	CFindHexDlg(HWND hWnd);

	virtual void OnInitDialog();
	virtual UINT OnOK();
};

class CScanRelativeDlg : public CDialog
{
public:
	enum {IDD=IDD_SCANRELATIVEDIALOG};

	CScanRelativeDlg(HWND hWnd);

	virtual void OnInitDialog();

	void OnScan();
	void OnGenerateTable();
	void OnSave();

	std::vector<relativescandata> vScanData;
};

class CRelativeValueDlg : public CDialog
{
public:
	enum {IDD=IDD_VALSCANRELATIVEDIALOG};

	CRelativeValueDlg(HWND hWnd);

	virtual void OnInitDialog();

	void OnAdd();
	void OnRemove();
	void OnSkip();
	void OnReset();
	void OnScan();
	void OnSave();
	void OnDecimal();
	void OnHex();
	void OnCharacter();

	std::vector<int> vValueList;
	std::vector<relation> vRelativeOffsets;
	std::vector<relativescandata> vScanData;
};

